Packet-based communication networks such as the Internet have developed to allow highly efficient transmission of large quantities of communication traffic between users of different user terminals as a part of a communication system. Communication data can be exchanged over the packet-based network via a server that is suitable for routing communication data between the user terminals of two or more users.
To participate in a communication session each user runs a communication client application on his or her respective terminal. When the user runs the communication client, the client allows the user to make or accept contact requests to or from other users of the communication system and thereby become pre-agreed contacts, and to then establish a communication connection with one or more of those contacts so as to send and receive communications over the network. There may be other ways that the user can make or accept contact requests to or from other users of the communication system e.g. by way of an email invitation. In a communication session between connected users, the users may use their respective user terminals to transmit a stream of encoded communication data over the network to be received by the one or more other user terminals connected in the communication session. Transmitted data streams may be processed at the server and forwarded to each of the other user terminals participating in the communication session.
The communication data can include user-captured audio and/or video data and text based messages (Instant messaging, IM) as part of a one-to-one call between two user terminals or a conference call between three or more user terminals. The communication clients can also be used to communicate other data, for example allowing users to share files such as contact details, documents and/or media files. The communication client may also have the ability to interact with other applications so that data associate with those applications can be shared. For instance, a first user terminal can be used to present a slideshow presentation that can be shared live as part of a communication session.
The communication data is typically exchanged in real-time so that communications sessions are conducted live, although some communication systems may also provide a cloud storage system which can store messages and record entire communication sessions so that they can be subsequently downloaded by user terminals. A communication session involving audio-visual data may be recorded and stored at the cloud storage medium in the form of a video file. The recorded communication session video file may be downloaded and played back by one of the user terminals that was invited to be part of the recorded communication session. This may be useful in the event that one or more contacts invited to be part of a particular communication session is offline or otherwise unable to join that communication session. Another reason is that a user may simply want to re-watch or listen back to the communication session that he was part of. The downloaded video recording can be played back through a media playing application and controlled according to the watching user's preferences.